//创建路由
import {createRouter, createWebHistory} from 'vue-router'
import {constantRoutes} from './routers.ts'
import NProgress from 'nprogress'// 进度条
import 'nprogress/nprogress.css' // 进度条样式
import setting from '@/conf/setting.ts'

// 取消加载小球
NProgress.configure({showSpinner: false});


const router = createRouter({
        history: createWebHistory(),
        routes: constantRoutes as any,
        //滚动行为
        scrollBehavior() {
            return {
                top: 0,
                left: 0
            }
        }
    }
)
// 全局前置守卫
router.beforeEach(async (to) => {
    //进度条
    NProgress.start()
    const token = localStorage.getItem("token")

    if (
        // 检查用户是否已登录
        !token &&
        // ❗️ 避免无限重定向
        to.name !== 'Login'
    ) {
        // 将用户重定向到登录页面
        return {name: 'Login'}
    }
    // 检查用户是否已登录,如果已经登录，并且访问是login页面就重定向
    if (to.name === 'Login' && localStorage.getItem("token")) {
        // 将用户重定向到首页
        return {name: 'Home'}
    }

})
// 全局后置钩子
router.afterEach((to) => {
    // 设置页面标题
    document.title = `${setting.title} - ${to.meta.title}`
    // 进度条消失
    NProgress.done()
})


export default router

